草庐IT

Java 垃圾回收碎片整理

全部标签

javascript - ES6 全局符号是否被垃圾收集?

ES6符号的无上限动态创建是否会导致不可恢复的内存使用?在Erlang(以及以前的Ruby)中,原子/符号的创建不会被垃圾收集。似乎在全局符号注册表(Symbol.for('string'))中创建的符号无法被垃圾收集并保持全局唯一性,但我可能遗漏了一些东西。在我看来,这似乎不是由ES6规范规定的。 最佳答案 符号是原语并不意味着它们不能使用引用和分配来实现。想想js中的原始字符串。浏览器可能会以这种方式实现符号,使它们受gc的约束。在chrome中快速测试for(;;)Symbol();(不要运行它)会导致锯齿状内存配置文件,因此

javascript - 垃圾收集未使用的模块

我正在使用动态导入来加载用户在浏览器中编写的脚本。我首先将脚本内容放入一个blob中,然后使用动态import()将脚本作为模块加载。随着时间的推移,我预计这些脚本会发生变化并被销毁,从而使相应的模块被垃圾回收。然而,根据Chrome中的内存分析,这并没有发生。原因似乎与称为ModuleMap的东西有关。这是我在不再使用所有脚本后拍摄的内存快照的屏幕截图。如您所见,Window对象提供了通往这些模块的保留路径。只要是这种情况,我肯定最终会耗尽内存,因为每次用户编辑脚本时都会创建这些模块。我想知道是否有办法让Chrome(和其他浏览器)在不再使用这些模块时卸载它们。

javascript - 如何释放和垃圾收集 WebGL 上下文?

我正在为Web和移动设备开发WebGL应用程序。我经常使用硬刷新来测试我的WebGL实现的结果。View尝试后,出现错误:Error:WebGL:Exceeded16liveWebGLcontextsforthisprincipal,losingtheleastrecentlyusedone.这不会出现在新启动的浏览器上,而是在多次刷新网站后出现。我猜WebGL上下文没有正确完成、释放、销毁、清理、释放。我该怎么做?KhronosGroup在此处创建了一个用于释放和垃圾收集WebGL上下文的测试套件:https://www.khronos.org/registry/webgl/sdk/

javascript - 分配一个新的字符串值会产生需要收集的垃圾吗?

考虑这个javascript代码:vars="Somestring";s="Morestring";垃圾收集器(GC)在这种操作之后是否还有工作要做?(我想知道在尝试最小化GC暂停时是否应该担心分配字符串文字。)e:让我觉得有点好笑的是,虽然我在问题中明确指出我需要尽量减少GC,但每个人都认为我错了。如果真的必须知道特定的细节:我有一个javascript游戏——它在Chrome中运行良好,但在Firefox中有半频繁的暂停,这似乎是由于GC。(我什至检查过Firefox的MemChaser扩展,暂停与垃圾收集完全一致。) 最佳答案

javascript - Node.js 的垃圾收集器

我从这个线程中学到了garbagecollectionwithnode.jsnode.js使用分代GC。我经常使用循环对象引用(我删除/确保最终超出范围)并且想知道node.js是否能很好地处理它们。所以例如。如果它是使用ref完成的。计数,会有问题,所以我想知道Node在这方面有多好。一些使用场景:对于每个http请求,我都创建了一个带有lambda的setTimeout,它可能引用了范围对象。scope对象也有对timeout对象的引用等...对于每个用户session,我都有一个指向http请求对象的指针(仍在进行C编程)引用,它也引用了session对象等...请求对象经常被删

javascript - 如何在 Javascript 中收集匿名对象垃圾?

如果我创建了一个对象但没有将它赋值给任何东西,Javascript什么时候会垃圾回收这个对象?这是一个例子:alert(newDate().getTime());如果不进行这样的垃圾回收,会不会造成内存泄漏?for(vari=0;i 最佳答案 如果作用域内没有人引用匿名对象,则下次GC运行时将对它们进行垃圾回收。因此,在Console.info完成运行后,它们就可以进行垃圾收集了。如果您设置任何范围内的变量来引用它们,那么它们就不会。 关于javascript-如何在Javascript

java - JSP 页面应该如何检查身份验证

我是网络编程新手。我要求一种通用模式来执行诸如检查身份验证之类的操作。这是场景:该网站有一个访问者登录页面。它将获取用户名和加密密码并将它们发送到服务器,然后从服务器获取错误代码(用户名/密码不匹配)或授权key。当用户登录成功后,我想让网站自动跳转到呈现网站主要功能的main.jsp页面。在这种情况下,我希望main.jsp检查用户身份验证。也就是说,我不希望用户可以直接打开www.example.com/main.jsp这样的事情发生,如果他们这样做了,我想将他们重定向到登录页面。那么如何跨页面传递认证信息,如何防止用户在未登录的情况下直接访问main.jsp呢?我需要使用sess

javascript - 为什么 Java 8 Nashorn (JavaScript) 模返回 0.0( double )而不是 0(整数)?

考虑以下代码示例:importjavax.script.ScriptEngine;importjavax.script.ScriptEngineManager;publicclassTester{publicstaticvoidmain(String[]args)throwsException{ScriptEnginese=newScriptEngineManager().getEngineByName("nashorn");Objecteval=se.eval("5%5");System.out.println("eval="+eval);System.out.println("ev

javascript - 除了浏览器本身之外,如何使用 JavaScript 或 Java 清除浏览器(IE、Firefox、Opera、Chrome)历史记录?

除了从浏览器本身清除之外,如何使用JavaScript或Java清除浏览器(IE、Firefox、Opera、Chrome)历史记录? 最佳答案 脚本通常无法访问浏览器中的document.location数据,因为允许访问将使任何给定站点能够访问您的整个浏览历史记录。最多你可以做一些简单的操作,比如“转到历史条目#37”或“返回一页”。但是您不能执行“历史条目#23中页面的地址是什么”。大多数银行网站将使用javascript链接来防止建立点击历史记录。他们会执行document.location.replace”来杀死最后一个历

3.2 报错整理

 报错1:报错:RuntimeError:DataLoaderworker(pid93789)iskilledbysignal:Killed.原因:显存不够报错2:报错:TqdmWarning:IProgressnotfound.Pleaseupdatejupyterandipywidgets.解决:pipinstallipywidgets报错3:报错:RuntimeError:CUDAerror:CUBLAS_STATUS_EXECUTION_FAILEDwhencalling`cublasSgemm(handle,opa,opb,m,n,k,&alpha,a,lda,b,ldb,&beta